// 调用登录api并存储token到vuex,并存储到浏览器
/*
cookie存储到浏览器
js-cookie.js已封装了cookie操作
获取：get(key)
设置：set(key,value)
删除:remove(key)
*/
import { sysLogin, sysProfile, sysUser } from '@/api/user'
// import { getToken, setToken } from '@/utils/auth'
// import { Message } from 'element-ui'
const state = {
  username: '张三',
  token: '',
  userInfo: ''
}
const mutations = {
  setToken(state, value) {
    state.token = value
    // setToken(value)
  },
  setUserName(state, value) {
    state.username = value
  },
  setUserInfo(state, value) {
    state.userInfo = value
  },
  logout(state) {
    // 清空token以及用户信息
    state.token = ''
    state.userInfo = ''
  }
}
const actions = {
  async toLogin({ commit }, value) {
    // sysLogin(value)
    //   .then((res) => {
    //     commit('setToken', res.data)
    //   })
    //   .catch((err) => {
    //     console.log('错误:', err)
    //   })
    const res = await sysLogin(value)
    console.log('3')
    commit('setToken', res.data)

    // console.log('返回值', res)
    // if (res.success) {
    //   commit('setToken', res.data)
    // } else {
    // 提醒用户
    /*
    message:
    this.$message.success/error/warning/info('消息内容')
    this.$message({
        type:'success/error/warning/info',
        message:'消息内容'
    })
    在js中调用
    import { Message } from 'element-ui';
    Message===this.$message
    */
    //   Message.error(res.message)
    // }
  },
  async getUserInfo(store) {
    const res = await sysProfile()
    // 将数据存储到vuex中
    store.commit('setUserInfo', res.data)
    const res1 = await sysUser(res.data.userId)
    // console.log(res);
    // Object.assgin 为对象合并的另一种方法
    store.commit('setUserInfo', Object.assign({}, res.data, res1.data))
  }
}
const getters = {}
export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters
}
